专利摘要:
一実施例では、本発明は、実行された命令を受信し、リタイヤさせるためのリタイヤメント・ユニットを含む。リタイヤメント・ユニットは、割り当てで情報を受信するための第1のアレイ、及び実行後に情報を受信するための第2のアレイを含み得る。リタイヤメント・ユニットは、実行された命令に関連付けられた情報がアレイの少なくとも1つのオンデマンド部分に記憶された場合、実行された命令に関連付けられたイベントを算出するためのロジックを更に含み得る。他の実施例を説明し、特許請求の範囲に記載する。
公开号:JP2011514607A
申请号:JP2011501025
申请日:2009-06-17
公开日:2011-05-06
发明作者:シュペルベル,ゼーヴ;マロム,ラフィ;レヴィ,オフェル
申请人:インテル コーポレイション;
IPC主号:G06F9-38
专利说明:

[0001] 現代のマイクロプロセッサは、命令を受信し、命令を実行し、命令の結果を提供する種々の段階で形成される。現代のアーキテクチャの多くは、命令を順序外れで実行することが可能であり、結果が、その後、順番にプロセッサのアーキテクチャ状態にコミットされる順序外れ(OOO)実現形態に基づく。]
背景技術

[0002] 前述の順序外れ動作を実現するために、プロセッサ・パイプラインを種々の段階にセグメント化することが可能である。前述の段階における命令の処理が終了すると、実行の結果が有効である(すなわち、不確かでなく、又は誤ったデータに基づくものでなく、障害又は例外が生じていない)ということを確認するよう動作し得る。多くのプロセッサ・アーキテクチャでは、各リタイヤメント・サイクルでは、リタイヤメント・ロジック全体が、関連付けられたデータ全てが、関連付けられたアレイ全てから読み出され、完全なリタイヤメント・ロジックが命令毎に呼び出されるようにアクティブである。この活動は全て、保証信号を生成し、イベント算出及び優先順位付けを含むリタイヤメント関連動作を行うことを意図している。]
発明が解決しようとする課題

[0003] しかし、大半のサイクルでは、イベントは生じず、したがって、イベントを算出する必要は存在しない。そういうものとして、適切な動作に必要でないかなりの電力消費が存在している。]
課題を解決するための手段

[0004] 種々の実施例では、プロセッサのリタイヤメント・ロジックは、動作のかなりの部分の間、最小量の前述のリソースのみに電力を供給することが可能であるように種々のリヤイヤメント・リソースの区分を提供することにより、高い電力感応度で動作するよう制御することができる。この点で、種々のアレイ、バッファ等、及びロジックを、前述の動作に対応するよう区分することが可能である。本明細書及び特許請求の範囲記載の実施例は、再配列バッファ(ROB)の意味合いにおけるものであるが、本発明の範囲はこの点に限定されず、実施例は、特定のプロセッサにおいて存在し得る種々のリタイヤメント・ロジックに使用することが可能である。]
図面の簡単な説明

[0005] 本発明の一実施例によるプロセッサのブロック図である。
本発明の一実施例によるリヤイヤメント・ロジックのブロック図である。
本発明の一実施例による方法のフロー図である。
本発明の一実施例によるシステムのブロック図である。]
[0006] 電力の利点を達成するために、各リタイヤメント・ウィンドウにおいて生じる通常のリタイヤメント活動に関連付けられた前述のロジック及びアレイの区分は、最小電力が消費されるように比較的小さいことがあり得る。対照的に、種々のイベントに関連付けられた更なる算出をリタイヤメント命令において実現する必要がある比較的希なケースでは、より大きなアレイ及びロジックに電力を供給にすることが可能である。このようにして、所望の動作は必要に応じて行うことが可能である一方、リタイヤメント動作の大半の場合、最小リタイヤメント・ロジックのみに電力を供給すればよい。本明細書及び特許請求の範囲において一般に命令リタイヤメントにして説明しているが、種々の実施例では、命令は、マクロ命令などの単一のユーザレベル命令を複数のμopsに分割することが可能な、いわゆるマイクロ動作(μops)を表し得る。]
[0007] ROBは、例外処理、命令ポインタ(例えば、EIP/UIP)算出、性能モニタ(PMON)算出、及びレジスタ更新などのリタイヤメント関連制御を行う。障害の検出以外に、ROBは、障害が検出されず、リタイヤメントにおいて行われる場合に、実行される他の通常のリタイヤメント関連タスクを有する。前述のタスクは、新たにリヤイヤされた値の、再命名されていないレジスタへの書き込み、(データ・ブレークポイント・ビット、コマンド及びステータス・レジスタ例外、精度例外等のような)新たな値の更新、及びステータス・ビットの算出、並びに、性能モニタの更新などの有効なリタイヤメントに続いて行われる動作を含む。本発明の実施例による電力アウェア・リタイヤメント手法は、(ROBに対する)外部及び内部の表示から導き出された静的及び動的な情報に少なくとも部分的に基づいて、必要な場合にのみ、ROBの別々の、電力を求めるブロックを選択的に制御することが可能である。]
[0008] すなわち、最小量の電力を引き出す通常のリタイヤメントの主流のタスクは、アレイ及びロジックのパーティションによって処理し、イベント処理(例えば、障害、トラップ、例外、割り込み)のような、希なケースを、必要な際にのみ、前述のアレイ及びロジックのより完全なパーティションによる処理にまかせることが可能である。このようにして、完全な性能環境において動作する必要があるPMONのような特殊モードは、必要な際に、正常に動作し、アクティブでない場合に電力を節減することが可能である。実施例はよって、命令リタイヤメントを実現するための算出の量を削減することにより、周波数中断可能でないリタイヤメントにおいて、より大きなリタイヤメントを可能にし得る。]
[0009] 次に図1を参照すれば、本発明の一実施例によるプロセッサのブロック図を示す。図1に示すように、プロセッサ100は、多段のパイプラインされた順序外れのプロセッサであり得る。プロセッサ100は、以下に説明するように、電力アウェア・リタイヤメント動作に関して種々の構成を示すよう、図1の相対的に単純化された図で示す。] 図1
[0010] 図1に示すように、プロセッサ100は、実行する対象のマクロ命令をフェッチし、プロセッサにおけるその後の使用に備えるために使用することができるフロント・エンド・ユニット110を含む。例えば、フロント・エンド・ユニット110は、命令プリフェッチャ、命令デコーダ、トレース・キャッシュ、並びに、マイクロコード記憶装置及びμop記憶装置を含み得る。命令プリフェチャは、メモリからマクロ命令をフェッチし、それを命令デコーダに供給して、プリミティブ(すなわち、プロセッサによる実行のためのμops)にデコードすることができる。トレース・キャッシュは、デコードされたμopsを取り出し、マクロ・コード記憶装置に記憶するために、プログラムによって配列されたシーケンスに組み立てることができる。しかし、複雑なマクロ命令の場合、マイクロコード記憶装置は、動作の実行に必要なμopsを供給することができる。当然、更なる構成部分及び要素をフロント・エンド・ユニット110において実現することができる。] 図1
[0011] フロント・エンド・ユニット110と実行ユニット120との間に結合されているのは、マイクロ命令を受信し、実行に備えるために使用することができるOOOエンジン115である。特に、OOOエンジン115は、レジスタ・ファイル130及び拡張レジスタ・ファイル135などの種々のレジスタ・ファイル内の記憶場所に論理レジスタの再命名を提供するとともに、マイクロ命令フローを再配列し、実行に必要な種々のリソースを割り当てるために種々のバッファを含み得る。レジスタ・ファイル130は、整数及び浮動小数点演算のために別個のレジスタ・ファイルを含み得る。拡張レジスタ・ファイル135は、ベクタサイズ・ユニット(例えば、レジスタ毎の256ビット又は512ビット)のための記憶装置を提供することができる。]
[0012] 種々のリソースは、他の専用ハードウェアの中でも、種々の、整数、浮動小数点、及び単一命令複数データ(SIMD)論理ユニットを含む実行ユニット120に存在し得る。結果は、電力アウェアなやり方で動作し得るリタイヤメント・ロジック(すなわち、再配列バッファ(ROB)140)に供給することができる。特に、ROB140は、実行される命令に関連付けられた情報を受信するための種々のアレイ及びロジックを含む。この情報は次いで、命令を有効にリタイヤし、結果データをプロセッサのアーキテクチャ状態にコミットすることが可能であるか否か、又は命令の適切なリタイヤメントを妨げる1つ又は複数の例外が生じたか否かを判定するために、ROB140によって検査される。当然、ROB140は、本明細書及び特許請求の範囲記載の種々のイベント及び算出などの、リタイヤメントに関連付けられた他の動作を処理することができる。]
[0013] 図1に示すように、ROB140は、1つ又は複数のイネーブルされたアレイ142及び1つ又は複数のオンデマンド・アレイ144を含む種々のアレイを含み得る。イネーブルされたアレイは、常に、起動することができ、命令に関連付けられた最小量の情報を含み得る。以下に更に説明するように、1つの特定の実現形態では、割当アレイ及びライトバック(WB)アレイの別個のパーティションは、イネーブルされたアレイ144に対応し得る。同様に、オンデマンド・アレイ144は、μopsに関連付けられた更なる情報を含み、特定の情報に関連付けられたイベントを処理するために、必要な場合にのみ、起動することができる前述のアレイのパーティションであり得る。図1に更に示すように、ROB140は更に、イネーブルされたロジック146を含む。前述のイネーブルされたロジックは常にアクティブであり得、通常の命令リタイヤメント演算を処理するために使用することができる。対照的に、オンデマンド・ロジック148は、障害、割り込み、分岐予測ミス、性能監視及び更新等などの、通常のリタイヤメントを超えるイベントを処理するよう、必要に応じて、イネーブルされるに過ぎないことがあり得る。図1に示すように、ROB140は、一実施例では、低レベル・キャッシュ(例えば、L1キャッシュ)であり得るキャッシュ150に結合されるが、本発明の範囲はこの点に限定されない。更に、実行ユニット120はキャッシュ150に直接結合され得る。キャッシュ150から、高位キャッシュ、システム・メモリ等とのデータ通信が行われ得る。図1の実施例ではこの高位レベルで示しているが、本発明の範囲はこの点に限定されるものでない。] 図1
[0014] 概括的な動作では、ROBは、リタイヤメント・ウィンドウのμopsがROBアレイの特定の部分の読み取りを必要とするか、又は、(特定のリソースが電力を求め、通常のリタイヤメントを超える演算を行う)特定のロジックをイネーブルすることを必要にするかを判定する。この判定は、割り当て中に真っ先に静的に検出するか、又はWBで動的に検出することが可能である。例えば、(割り当てにおける)静的イベント又は(ライトバック(WB)における)動的イベントが検出されなかった場合、イベント・ロジックを起動させる必要性は存在しない。更に、PMON算出がアクティブでない場合、この状態は、割り当てで静的に検出することが可能であり、PMON算出に関連付けられたデータは、リタイヤメントで読み取られず、PMON値を算出するロジックはイネーブルしなくてよい。]
[0015] 特定の動作が識別され、特にイネーブルされない限り、ROBは通常、正常なリタイヤメントの主流の活動に注力する。前述の電力アウェア手法は、通常、その必要性が明確にされるまで、イベントがない、正常なμopのリタイヤメントに必要なロジックのみ、及び、他のロジック全ての電源遮断をイネーブルする。]
[0016] 電力アウェアROBをイネーブルするために、実施例は、アレイなどの種々のリソースを2つの部分(すなわち、全てのリタイヤメントについて読み出される一方のもの、及びオンデマンドのみで読み出される他方のもの(例えば、PMON動作、割り込み、障害等))に分けることができる。次いで、各アレイのどの部分が性能タイプ(例えば、イベントのみ、PMONのみ等)毎に読み取られるかを識別するためのロジックは、適切なリソースに電力を供給するために使用することができる。更に、その種の動作に関連付けられたタイプがリタイヤすると各部分が特にイネーブルされるように、リタイヤメント・ロジックをパーティション化することが可能である。]
[0017] 通常のケースでは、不確かなイベントが検出されない場合、障害又は例外なしでμopsを有効にリタイヤさせることが可能である旨を示すための、リタイヤメント・ウィンドウの保証信号は、μopsが、リタイヤメントに有効であり、フォールト・ロジックによる算出が存在しない場合に直ちにアクティブになり得る。したがって、例えば、1つ又は複数のサイクルにより、更に速く、リリースすることが可能であり、よって、早期保証信号として表し得る。しかし、不確かなイベントが検出された場合、早期保証は、前述の時点で生成されず、その代わりに、μopsを有効にリタイヤすることが可能でない旨を示すための(遅い)保証信号、又は無効な信号が、オンデマンド・イネーブルされたロジックによって生成される。]
[0018] 次に図2を参照すれば、本発明の一実施例によるリタイヤメント・ロジックのブロック図を示す。図2に示すように、ROBに対応し得るリタイヤメント・ユニット200は、複数の部分(すなわち、各リタイヤメント・ウィンドウ中に動作を行うよう常にイネーブルされ得る第1のパーティション、及び関連付けられた種々のイベントを有するリタイヤメントを処理するために必要に応じて断続的にイネーブルされるに過ぎないことがあり得る第2のパーティション)にパーティション化される種々のリソースを有し得る。図2に示すように、リタイヤメント・ユニット200は割り当てアレイ210を含む。割り当てアレイ210は、その割り当てでμopに関連付けられた入力情報を受け取り得る。本発明の範囲はこの点で限定されないが、前述の情報は、μopに関連付けられた例外のタイプや、演算のタイプ(分岐、ロード、記憶、浮動小数点(FP)、又は整数演算)などの、μopに関連付けられた静的情報に対応し得る。図2に示すように、割り当てアレイ210は、常にアクティブであるように構成することができる第1のパーティション212、及び、必要に応じて(すなわち、オンデマンドで)イネーブルされるに過ぎない第2のパーティション214にパーティション化することができる。図示するように、第1のパーティション212の相対的なサイズは、第2のパーティション214のものよりもずっと少ないことがあり得る。よって、常に電力が供給された部分は、相対的に小さくし、電力消費を削減することが可能である。] 図2
[0019] この目的で、μop毎の最小量の情報のみを第1のパーティション212に記憶することができる。例えば、μop毎の単一のビットは、μopの更なる情報が第2のパーティション214に存在しているか否かを示すために記憶することができる。よって、μopが、何れのタイプのイベント処理もなしで通常、リタイヤすることが可能なμopであるようにみえる場合、第1のパーティション212における関連付けられたビットは第1の状態(例えば、ロジック0)のものであり得る一方、第2の状態(例えば、ロジック1)のものである場合、これは、μopに関連付けられた更なる情報が第2のパーティション214に存在している旨を示す。]
[0020] 同様に、ライトバック(WB)アレイ220は、μopsに関連付けられたライトバックで情報を受け取るよう結合され得る。よって、実行ユニットにおける特定のμopが実行されると、ステータス・フラグや他のそうした情報(障害や他の例外情報を含む)及び、算出された値を含む種々の結果情報をWBアレイ220に供給することができる。図2に示すように、WBアレイ220は、2つの部分に(すなわち、第1のパーティション222及び第2のパーティション224)に更に、パーティション化される、前述のパーティションは、割り当てアレイ210に関して上述したものと同様に情報を記憶することができる。] 図2
[0021] なお図2を参照すれば、早期ロジック230を、アレイ210及び220の両方に、イネーブル信号をそこから受信するよう結合され得る。更に図2に示すように、早期ロジック230は、プロセッサの他の部分から大局イベント情報を受信するよう結合することができる。本発明の範囲はこの点に限定されないが、前述の大局イベントは、割り込み、スヌープ、又は他のイベントに対応し得る。早期ロジック230は、この情報を受信し、早期保証信号を生成することが可能であるか否かを判定するよう構成することができる。すなわち、リタイヤメント・ウィンドウに関連付けられた大局イベントが受信されず、リタイヤメント・ウィンドウのμopsに関連付けられた情報が第2のパーティションに存在していない旨を、アレイ210及び220のイネーブルされた第1のパーティションからの値が示す場合、これは、処理する対象のイベントがなく、正常なリタイヤメントを行うことが可能であるということを意味する。よって、早期ロジック230は、早期保証信号を生成し、これは、以下に更に説明するように、出力ロジック250に供給される。このようにして、早期ロジック230は実質的に、ORロジックとしてふるまう。] 図2
[0022] その代わりに、早期ロジック230に対する前述の種々の入力の何れかは、早期保証信号を生成することが可能でない旨を示す場合、アレイ210及び220の第2のパーティションは、前述のアレイからのリタイヤメント・ウィンドウに対応する情報をイベント・ロジック240に送出することが可能であるように起動させることができる。これは一般に、リタイヤメント関連動作を行うためのロジックを表す。]
[0023] よって、イベント・ロジック240は、リタイヤメント・ウィンドウに関連付けられたイベント処理を行うことが可能であるように早期保証信号を生成することが可能でない場合にイネーブルすることができる。更に、第2のパーティションに存在している情報に基づいて、非イベント・リタイヤメント・ロジック245は、割り当て又はリタイヤメントで受信されたPMON表示、又は予測を誤った分岐による命令ポインタ更新などのリタイヤメント関連動作を行うよう起動することができる。図2の実施例における例証を簡単にするために示していないが、種々の実現形態では、イベント・ロジック240はそれ自体を、特定のタイプのリタイヤメント又はイベント処理を処理するための前述のロジックの最小部分のみを起動させることが可能であるように種々の部分にパーティション化することができる。よって、イベント処理を、イベント・ロジック240の特定の部分が処理する必要性を情報が示す場合、ロジック240のその部分のみに電力を供給することができる。] 図2
[0024] イベント・ロジック240は、出力ロジック250に供給される出力を生成することができる。この出力は、リタイヤメント・ウィンドウが有効な場合であるということを算出が示す場合に保証信号に対応し得る。この保証信号は、早期ロジック230において生成することが可能な早期保証信号の1つ又は複数のサイクル後に生成される遅い保証信号とみなし得る。イベント・ロジック240において行われた算出に基づいて、例えば、障害、割り込み、予測ミス等により、リタイヤメント・ウィンドウを有効にリタイヤさせることが可能でないということが判定された場合、代わりに、無効な信号を出力ロジック250に送出することができ、リタイヤメントは、プログラムの順序で動作するが、元のレートとは異なるレートで動作することができる別のロジック(すなわち、通常のリタイヤメント・レートが使用される場合のクロック毎の4μopsのリタイヤメントに対するクロック毎の単一のμopのリタイヤメント)によって処理することができる。有限状態マシン(FSM)であり得る出力ロジック250はよって、早期ロジック230及びイベント・ロジック240から種々の信号を受信することができる。出力ロジック250は、プログラムの順序で出力ロジック250から出力されるように前述の種々の信号を直列化するよう、ふるまい得る。すなわち、順序はずれの命令の実行でなく、出力ロジック250は、より早期のリタイヤメント・ウィンドウのイベント・ロジック240からの保証又は無効信号よりも1つ又は複数のサイクル早く受信することができる早期保証信号が、前述の信号の前に出力されないということを確実にし得る。すなわち、信号が早期ロジック230から発信されたか、又はイベント・ロジック240から発信されたかに係わらず、出力ロジック250は、順番にリタイヤメント・ウィンドウ毎に信号を出力する。]
[0025] 種々の実施例では、出力ロジック250は、保証信号が生成された場合に、プロセッサのアーキテクチャ状態への、実行結果の有効なコミットメントをイネーブルし、代わりに、無効な信号が生成された場合、種々のプロセッサ・リソースを場合によっては消去することを含む、他の例外処理のために適切な障害を生じさせるよう、制御ロジック等などのプロセッサの種々の他のリソースに結合することができる。]
[0026] よって、図2に示すように、種々のアレイは、常に読み出される第1のパーティション、及び選択的に読み出される第2のパーティションにパーティション化される。同様に、リタイヤメント・ユニット200のロジックは、常にアクティブであり、リタイヤメント・ウィンドウに関連付けられたイベントが生じたか否かを判定し、肯定の場合、イネーブすべき、更なるリタイヤメント・ロジックが何であるかを判定するために使用されるロジックに分けることもできる。図2の実施例ではこの特定の実現形態によって示しているが、本発明の範囲はこの点に限定されるものでない。よって、動作の概要では、割り当てで、読み出す対象のパーティションがどれであるか(特に、第1のパーティション212)を規定する静的情報を算出し、割り当てアレイ210に記憶することが可能である。同様の動作をWB情報に対して行い、MBアレイ220に記憶することが可能である(特に、第1のパーティション222)。次いで、リタイヤメントで、情報が読み出され、どのアレイを読み出し、どのロジックをイネーブルするかの決定が、早期ロジック230によって行われる。更に、割り込み又はスヌープなどの外部イベントも、別のアレイ又はロジックをイネーブルする必要があるかを判定するために、早期ロジック230によって検査することも可能である。行う必要のあるタスクが明確にされ、読み出されなかったアレイのうちの1つからの更なる情報を必要とする場合、割り当て又はWBアレイの特定の部分が読み出され、このタスクをおこなうための更なるロジックがイネーブルされる。] 図2
[0027] 次に図3を参照すれば、本発明の一実施例による方法のフロー図を示す。図3に示すように、方法300は、電力アウェアのやり方で命令をリタイヤさせるために使用することができる。方法300は、命令割り当てで静的情報を受け取り、割り当てバッファの選択された部分において前述の情報を記憶することで始まり得る(ブロック310)。例えば、前述の通り、この静的情報は、障害又は例外の可能性が低い旨を示す場合、命令に関連付けられた更なる情報が、割り当てバッファの第2の部分に存在しない旨を示すよう割り当てバッファのより小さい第1の部分において設定することができる。代わりに、更なる処理が、リタイヤメントで(例えば、障害、性能監視、又は他の理由によって)必要である可能性が高い場合、更なる情報が第2のパーティションに存在している旨を示すよう表示子を示し得る。同様な動作が、命令ライトバックで受け取られ、同様に構成されたライトバック・バッファに記憶される動的情報に関して行われ得る(ブロック320)。] 図3
[0028] なお図3を参照すれば、菱形330で、特定のリタイヤメント・ウィンドウに関連付けられたバッファの第1の部分における情報が、更なるリタイヤメント又はイベント処理が必要である旨を示すか否かが(リタイヤメントで)判定され得る。すなわち、第1の部分における対応する表示子の状態に基づいて、前述のリタイヤメント処理(例えば、IP更新若しくは性能監視)又はイベント処理(例えば、種々の算出、障害又は割り込み処理等)が必要であり得るか否かが判定され得る。否定の場合、制御は菱形340に移り、菱形340では、リタイヤメント・ウィンドウに関連付けられた大局信号が受信されるか否かを判定することができる。前述の通り、前述の大局信号は、割り込み、スヌープ、又は他の大局イベントに対応し得る。前述の信号が受信されなかった場合、例えば、早期ロジックは早期保証信号を出力し得る(ブロック350)。] 図3
[0029] なお図3を参照すれば、代わりに、更なるリタイヤメント又はイベント処理が必要であるか、又は大局信号が受信されているということが判定された場合、制御は、菱形330又は340からブロック360に移り、ブロック360では、割り当てバッファ及びライトバック・バッファの更なる部分を起動させることができる。制御は次いでブロック370に移り、前述の処理は、イベント・ロジックの1つ又は複数の起動された部分において行うことができる。前述の通り、供給される更なる情報に基づいて、遅い保証信号を生成することが可能であるか否かを判定するよう種々の算出又は他の処理を行うために、種々のリタイヤメント又はイベント・ロジックをイネーブルすることができる。よって、イベント・ロジックの出力は、遅い保証信号又は無効信号であり得る(ブロック380)。] 図3
[0030] 図3に更に示すように、ブロック350及び380から、制御はブロック390に移り、ブロック390では、リタイヤメント・ユニットからの出力のために種々の信号が直列化され得る。すなわち、リタイヤメント・ウィンドウの直列化を維持するために、後のリタイヤメント・ウィンドウのために生成された早期保証信号は、早期リタイヤメント・ウィンドウに関連付けられた遅い保証又は無効化信号の先に進むことが阻止される。図3の実施例ではこの特定の実現形態で示しているが、本発明の範囲はこの点に限定されるものでない。] 図3
[0031] 例えば、リタイヤメントで特別な処理が必要であると判定された場合、リタイヤさせたμopsを通常とは異なるやり方で処理することが可能である。8μopsは通常、イベントが存在していない場合にリタイヤされるものとする。イベントがリタイヤメント・ウィンドウにおいて検出されると、各μopは代わりに、イベント・ロジックの単一の組のみが単一のμopに必要であるように別個にリタイヤさせることが可能である。これは、更なる電力の削減をもたらし得、リタイヤメントが更に速い場合、性能の低減をもたらし得る。しかし、特定のロジックを起動させることに決めた後のリタイヤメント動作は、元のレートとは異なるレートで行われ得る。]
[0032] もう必要でないイベントの一例は、セットされるスティッキ・ビットであり得る。そういうものとして、再びセットする必要はなく、よって、この重複設定を行うためのイベント・ロジックはイネーブルしなくてよい。前述の別のケースは、それに関連付けられた動作が行われないように十分早く、障害のない動作を識別するために早期信号を加えるというものである。例えば、浮動小数点(FP)演算は、例外処理ロジックがイネーブルされないほど十分早く、安全であると宣言することが可能である。PMON処理及びコプロセッサ状態の記憶のためのなどの場合に、ROBは、保持するデータ・アレイを読み出し、動作に関連付けられたタスクを行うが、障害が検出されなかった場合、障害を求めて検査を行う訳でなく、関連付けられたロジックを起動しない。]
[0033] 実施例は、別々の多くのシステム・タイプで実現することができる。次に図4を参照すれば、本発明の一実施例によるプロセッサのブロック図を示す。図4に示すように、マルチプロセッサ・システム500は、ポイントツーポイント相互接続システムであり、ポイントツーポイント相互接続550を介して結合された第1のプロセッサ570及び第2のプロセッサ580を含む。図4に示すように、プロセッサ570及び580はそれぞれ、第1のプロセッサ・コア及び第2のプロセッサ・コア(すなわち、プロセッサ・コア574a及び574b、並びに、プロセッサ・コア584a及び584b)を含むマルチコア・プロセッサであり得る。各プロセッサ・コアは、本発明の実施例により、電力アウェア・リタイヤメントをイネーブルするために、図1及び図2に示すようなロジックを含み得る。] 図1 図2 図4
[0034] なお図4を参照すれば、第1のプロセッサ570は、メモリ・コントローラ・ハブ(MCH)572、並びに、ポイントツーポイント(P−P)インタフェース576及び578を更に含む。同様に、第2のプロセッサ580は、MCH582、並びにP−Pインタフェース586及び588を含む。図4に示すように、MCH572及び582は、局所にそれぞれのプロセッサに接続された主メモリ(例えば、ダイナミック・ランダム・アクセス・メモリ(DRAM))の一部分であり得るそれぞれのメモリ、すなわち、メモリ532及びメモリ534に、プロセッサを結合させる。第1のプロセッサ570及び第2のプロセッサ580は、P−P相互接続552及び554それぞれを介してチップセット590に結合することができる。図4に示すように、チップセット590は、P−Pインタフェース594及び598を含む。] 図4
[0035] 更に、チップセット590は、高性能グラフィクス・エンジン538とチップセット590を結合させるためのインタフェース592を含む。同様に、チップセット590は、インタフェース596を介して第1のバス516に結合し得る。図4に示すように、種々のI/O装置514は、第1のバス516を第2のバス520に結合するバス・ブリッジ518に沿って第1のバス516に結合することができる。
種々の装置(例えば、キーボード/マウス522、通信装置526、及びデータ記憶装置528(コード530を一実施例では含み得るディスク・ドライブや他の大容量記憶装置など)を第2のバス520に結合することができる。更に、オーディオI/O524を第2のバス520に結合することができる。] 図4
[0036] 実施例は、コードで実現することができ、命令を行うためにシステムをプログラムするために使用することが可能な命令を記憶させた記憶媒体上に記憶することができる。記憶媒体は、限定列挙でないが、フロッピー(登録商標)・ディスク。光ディスク、コンパクト・ディスク、リードオンリ・メモリ(CD−ROM)、書換可能コンパクト・ディスク(CD−RW)及び光磁気ディスクなどの何れかのタイプのディスク、リードオンリ・メモリ(ROM)、ダイナミック・アクセス・メモリ(DRAM)、スタティック・ランダム・セクセス・メモリ(SRAM)などのランダム・アクセス・メモリ(RAM)、消去可能プログラマブル・リードオンリ・メモリ(EPROM)、フラッシュ・メモリ、電気的消去可能プログラマブル・リード・オンリ・メモリ(EEPROM)などの半導体デバイス、磁気若しくは光カード、又は電子的命令の記憶に適した何れかの他のタイプの媒体を含み得る。]
実施例

[0037] 本発明は、限定数の実施例について説明しているが、当業者は、数多くの修正及び変形をそれらから認識するであろう。特許請求の範囲記載の請求項が、本発明の真の趣旨及び範囲の範囲内に収まる前述の修正及び変形全てを包含することが意図されている。]
权利要求:

請求項1
装置であって、実行後に命令をリタイヤさせるためのリタイヤメント・ユニットを備え、前記リタイヤメント・ユニットは、前記命令の割り当てで第1の情報を受け取るための第1のアレイであって、前記第1のアレイは、リタイヤメント・ウィンドウで読み出す対象の第1の部分及びオンデマンドで読み出す対象の第2の部分にパーティション化された第1のアレイと、前記命令の実行後に第2の情報を受け取るための第2のアレイであって、前記第2のアレイは、リタイヤメント・ウィンドウそれぞれで読み出す対象の第1の部分及びオンデマンドで読み出す対象の第2の部分にパーティション化された第2のアレイと、前記実行された命令に関連付けられた情報が前記第1のアレイ又は前記第2のアレイの前記第2の部分に記憶された場合、実行命令に関連付けられたイベントを算出するためのデマンド・ロジックとを備える装置。
請求項2
請求項1記載の装置であって、前記デマンド・ロジックは、前記実行された命令が障害を有しない旨を算出が示した場合に、実行された命令の保証信号を生成し、前記障害が示された場合に無効化信号を生成する装置。
請求項3
請求項2記載の装置であって、前記第1のアレイ及び前記第2のアレイの出力に、前記第1のアレイ及び前記第2のアレイの前記第1の部分における情報に基づいて第1の実行された命令の早期保証信号を出力するよう結合された早期ロジックを更に備える装置。
請求項4
請求項3記載の装置であって、前記早期ロジックは、大局イベント情報を受け取り、それに応じて前記デマンド・ロジックを起動させるよう更に結合される装置。
請求項5
請求項3記載の装置であって、前記早期保証信号、前記保証信号、又は前記無効化信号を直列化するための前記早期ロジック及び前記デマンド・ロジックに結合された出力ロジックを更に備える装置。
請求項6
請求項4記載の装置であって、前記早期ロジックは、前記第1のアレイの前記第1の部分に存在している前記リタイヤメント・ウィンドウに対応する表示子の状態に基づいて前記第1のアレイの前記第2の部分を起動させる装置。
請求項7
請求項1記載の装置であって、前記第1のアレイは割り当てアレイを備え、前記第2のアレイはライトバック・アレイを備える装置。
請求項8
請求項7記載の装置であって、前記第1のアレイ及び前記第2のアレイの前記第2の部分は、前記デマンド・ロジックがアクティブでない限り、電源遮断する装置。
請求項9
方法であって、命令割り当てで命令に関連付けられた静的情報を受信し、割り当てバッファの第1の部分に前記静的情報の少なくとも第1の部分を記憶し、リタイヤメントで行う対象のイベントを前記静的情報が示す場合、前記割り当てバッファの第2の部分に前記静的情報の第2の部分を記憶する工程と、前記命令に関連付けられた前記静的情報が前記割り当てバッファの前記第2の部分にない場合、前記命令のリタイヤメントで早期保証信号を出力する工程と、さもなければ、前記静的情報の前記第2の部分にアクセスするよう前記割り当てバッファの前記第2の部分に電力を供給する工程とを含む方法。
請求項10
請求項9記載の方法であって、前記早期保証信号が出力されない場合、電力を供給されたイベント・ロジックにおける前記イベント処理を行う工程を更に含む方法。
請求項11
請求項10記載の方法であって、前記イベント処理の結果に基づいて前記イベント・ロジックにおいて無効化信号又は遅い保証信号を生成する工程を更に含む方法。
請求項12
請求項11記載の方法であって、リタイヤメント・ユニットからの出力のために、第1の命令に関連付けられた早期保証信号、及び第2の命令に関連付けられた遅い保証信号又は無効化信号を直列化する工程を更に含み、前記第2の命令は、前記第1の命令よりも、プログラム順序において早い方法。
請求項13
請求項9記載の方法であって、命令ライトバックで前記命令に関連付けられた動的情報を受信する工程と、ライトバック・バッファの第1の部分における前記動的情報の少なくとも第1の部分を記憶する工程と、前記動的情報が、リタイヤメントで行う対象のイベントを示す場合、前記ライトバック・バッファの第2の部分における前記動的情報の第2の部分を記憶する工程とを含む方法。
請求項14
請求項13記載の方法であって、イベント処理をリタイヤメントで行うか否かを、少なくとも部分的に、前記静的情報の前記第1の部分及び前記動的情報の前記第1の部分に基づいて判定する工程と、リタイヤメントで前記イベント処理を行う工程とを含み、前記リタイヤメントは、前記イベント処理を行わない場合と、前記イベント処理を行う場合とは異なるレートで行われる方法。
請求項15
システムであって、順序はずれ(OOO)で命令を実行するためのプロセッサであって、前記プロセッサは、複数の実行ユニットと、前記複数の実行ユニットに結合されたリタイヤメント・ユニットとを含むプロセッサを備え、前記リタイヤメント・ユニットは、前記命令の割り当てで第1の情報を受信するための割り当てバッファであって、前記割り当てバッファは、各リタイヤメント・ウィンドウで読み出される対象の第1の部分及びオンデマンドで読み出される対象の第2の部分にパーティション化された割り当てバッファと、前記命令の実行後に第2の情報を受信するためのライトバック・バッファであって、前記ライトバック・バッファは、リタイヤメント・ウィンドウそれぞれで読み出される対象の第1の部分と、オンデマンドで読み出される対象の第2の部分とにパーティション化されるライトバック・バッファと、前記ライトバック・バッファ又は前記割り当てバッファの前記第2の部分に前記第1の実行された命令に関連付けられた第2の情報がない場合、前記割り当てバッファ及び前記ライトバック・バッファの出力に、第1の実行命令の早期保証信号を出力する第1のロジックと、前記ライトバック・バッファ又は前記割り当てバッファの前記第2の部分に前記第2の実行命令に関連付けられた第2の情報がある場合、前記割り当てバッファ及び前記ライトバック・バッファの出力に結合され、第2の実行命令の遅い保証信号又は無効化信号を出力するよう結合された第2のロジックと、前記プロセッサに結合されたダイナミック・ランダム・アクセス・メモリ(DRAM)とを備えるシステム。
請求項16
請求項15記載のシステムであって、前記第1のロジックは、大局イベント信号を受信し、前記大局イベント信号に応じて第3の実行命令のリタイヤメント中に前記第2のロジックを起動させるシステム。
請求項17
請求項15記載のシステムであって、前記第1のロジック及び前記第2のロジックに結合され、前記第1のロジック及び前記第2のロジックの出力を結合するための第3のロジックを更に備えるシステム。
請求項18
請求項17記載のシステムであって、前記第3のロジックは、前記遅い保証信号、又は、前記早期保証信号よりも先の前記無効化信号を前記リタイヤメント・ユニットからの出力のために直列化し、前記第2の実行された命令は、前記第1の実行された命令よりもプログラム順序で早いシステム。
請求項19
請求項15記載のシステムであって、前記割り当てバッファ及び前記ライトバック・バッファの前記第1の部分は各リタイヤメント・ウィンドウ中に電力を供給され、前記割り当てバッファの前記第2の部分は前記リタイヤメント・ウィンドウに関連付けられた情報が、前記割り当てバッファの前記第2の部分に記憶されている場合にのみ、前記リタイヤメント・ウィンドウ中に電力を供給されるシステム。グラム順序で早いシステム。
請求項20
請求項15記載のシステムであって、前記第1のロジックは前記早期保証信号を出力し、前記第2のロジックはリタイヤメント・ウィンドウ中に電力を供給されず、スティッキ・ビットが、前記リタイヤメント・ウィンドウに先行してセットされ、前記リタイヤメント・ユニットによってセットされなくてよいシステム。
类似技术:
公开号 | 公开日 | 专利标题
US10073719B2|2018-09-11|Last branch record indicators for transactional memory
JP6345623B2|2018-06-20|条件付き非ブランチング命令の非実行を予測するための方法および機器
EP3516508B1|2020-07-15|Memory violation prediction
US10579386B2|2020-03-03|Microprocessor for gating a load operation based on entries of a prediction table
US9430235B2|2016-08-30|Predicting and avoiding operand-store-compare hazards in out-of-order microprocessors
JP5795820B2|2015-10-14|プロセッサ、方法、システム、及び、プログラム
JP6113705B2|2017-04-12|ロック命令を実行するためのプロセッサ及び装置
TWI494850B|2015-08-01|通透地提供給作業系統之非對稱多核心處理器系統
KR101524446B1|2015-06-01|하드웨어 제한에 기초한 조절가능한 트랜잭션 크기를 이용하여 코드를 동적으로 최적화하는 장치, 방법 및 시스템
US9009449B2|2015-04-14|Reducing power consumption and resource utilization during miss lookahead
US9201801B2|2015-12-01|Computing device with asynchronous auxiliary execution unit
US8555039B2|2013-10-08|System and method for using a local condition code register for accelerating conditional instruction execution in a pipeline processor
US7752423B2|2010-07-06|Avoiding execution of instructions in a second processor by committing results obtained from speculative execution of the instructions in a first processor
JP3788470B2|2006-06-21|スーパースケーラマイクロプロセサに於て命令をリタイアさせるシステム及び方法
US9262160B2|2016-02-16|Load latency speculation in an out-of-order computer processor
JP5889986B2|2016-03-22|実行された命令の結果を選択的にコミットするためのシステムおよび方法
US7725685B2|2010-05-25|Intelligent SMT thread hang detect taking into account shared resource contention/blocking
JP5059623B2|2012-10-24|プロセッサ及び命令プリフェッチ方法
EP1442364B1|2008-05-21|System and method to reduce execution of instructions involving unreliable data in a speculative processor
CN101694613B|2013-12-18|不对准存储器存取预测
JP5172942B2|2013-03-27|プロセッサによる電力消費を低減する方法、プロセッサ、及び、情報処理システム
US8301849B2|2012-10-30|Transactional memory in out-of-order processors with XABORT having immediate argument
US7941654B2|2011-05-10|Local and global branch prediction information storage
US7302527B2|2007-11-27|Systems and methods for executing load instructions that avoid order violations
US7461238B2|2008-12-02|Simple load and store disambiguation and scheduling at predecode
同族专利:
公开号 | 公开日
WO2009158247A3|2010-03-04|
GB201015011D0|2010-10-20|
CN101615115A|2009-12-30|
CN101615115B|2013-12-25|
DE102009029852A1|2009-12-31|
GB2473345A|2011-03-09|
US20090327663A1|2009-12-31|
RU2009124521A|2011-01-10|
JP5474926B2|2014-04-16|
TW201015435A|2010-04-16|
US7921280B2|2011-04-05|
RU2427883C2|2011-08-27|
GB2473345B|2012-12-05|
WO2009158247A2|2009-12-30|
TWI407369B|2013-09-01|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
法律状态:
2012-11-13| A977| Report on retrieval|Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20121113 |
2012-11-21| A131| Notification of reasons for refusal|Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121120 |
2013-02-15| A521| Written amendment|Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130214 |
2013-06-05| A131| Notification of reasons for refusal|Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130604 |
2013-08-23| A521| Written amendment|Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130822 |
2013-09-18| A131| Notification of reasons for refusal|Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130917 |
2013-11-29| A521| Written amendment|Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131128 |
2013-12-18| TRDD| Decision of grant or rejection written|
2014-01-08| A01| Written decision to grant a patent or to grant a registration (utility model)|Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20140107 |
2014-02-13| A61| First payment of annual fees (during grant procedure)|Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140205 |
2014-02-14| R150| Certificate of patent or registration of utility model|Ref document number: 5474926 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
2017-02-07| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2018-02-06| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2019-02-05| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2020-01-31| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2021-01-29| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2022-01-31| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
优先权:
申请号 | 申请日 | 专利标题
[返回顶部]